<?php if (!defined('ABSPATH')) {
  die;
}
/**
 *
 * Field: upload
 *
 * @since 1.0.0
 * @version 1.0.0
 *
 */
if (!class_exists('CSF_Field_upload')) {
  class CSF_Field_upload extends CSF_Fields
  {

    public function __construct($field, $value = '', $unique = '', $where = '', $parent = '')
    {
      parent::__construct($field, $value, $unique, $where, $parent);
    }

    public function render()
    {

      $args = wp_parse_args($this->field, array(
        'library'        => array(),
        'preview'        => false,
        'preview_width'  => '',
        'preview_height' => '',
        'button_title'   => esc_html__('Upload', 'csf'),
        'remove_title'   => esc_html__('Remove', 'csf'),
      ));

      echo $this->field_before();

      $library = (is_array($args['library'])) ? $args['library'] : array_filter((array) $args['library']);
      $library = (!empty($library)) ? implode(',', $library) : '';
      $hidden  = (empty($this->value)) ? ' hidden' : '';

      if (!empty($args['preview'])) {

        $preview_type   = (!empty($this->value)) ? strtolower(substr(strrchr($this->value, '.'), 1)) : '';
        $preview_src    = (!empty($preview_type) && in_array($preview_type, array('jpg', 'jpeg', 'gif', 'png', 'svg', 'webp'))) ? $this->value : '';
        $preview_width  = (!empty($args['preview_width'])) ? 'max-width:' . esc_attr($args['preview_width']) . 'px;' : '';
        $preview_height = (!empty($args['preview_height'])) ? 'max-height:' . esc_attr($args['preview_height']) . 'px;' : '';
        $preview_style  = (!empty($preview_width) || !empty($preview_height)) ? ' style="' . esc_attr($preview_width . $preview_height) . '"' : '';
        $preview_hidden = (empty($preview_src)) ? ' hidden' : '';

        echo '<div class="csf--preview' . esc_attr($preview_hidden) . '">';
        echo '<div class="csf-image-preview"' . $preview_style . '>';
        echo '<i class="csf--remove fas fa-times"></i><span><img src="' . esc_url($preview_src) . '" class="csf--src" /></span>';
        echo '</div>';
        echo '</div>';
      }

      echo '<div class="csf--wrap">';
      echo '<input type="text" name="' . esc_attr($this->field_name()) . '" value="' . esc_attr($this->value) . '"' . $this->field_attributes() . '/>';
      echo '<a href="#" class="button button-primary csf--button" data-library="' . esc_attr($library) . '">' . $args['button_title'] . '</a>';
      echo '<a href="#" class="button button-secondary csf-warning-primary csf--remove' . esc_attr($hidden) . '">' . $args['remove_title'] . '</a>';
      echo '</div>';

      echo $this->field_after();
    }
  }
}
